package top.infopub.mgr.cap.service;

import com.github.pagehelper.Page;
import top.infopub.dto.cap.ContractGuarantyDto;
import top.infopub.generic.GenericService;
import top.infopub.mgr.cap.domain.ContractGuarantyDomain;
import top.infopub.mgr.cap.jsonvo.ContractGuarantyJsonVo;
import top.infopub.mgr.cap.vo.ContractGuarantyVo;
import top.infopub.mgr.common.vo.RspVo;
import top.infopub.model.cap.ContractGuaranty;
import top.infopub.model.cap.ContractGuarantyDetail;
import top.infopub.model.mkt.ProjectAttachment;
import top.infopub.security.vo.AuthorizationVO;

import java.util.List;

public interface ContractGuarantyService extends GenericService<ContractGuaranty, String> {

    /**
     * 根据条件查询保证合同列表
     * @param contractGuarantyVo
     * @return
     * @see
     */
    Page<ContractGuarantyDomain> selectByDomainWhere(Page<ContractGuarantyDomain> page,ContractGuarantyVo contractGuarantyVo);

    /**
     * 根据id查询详情
     * @param id
     * @return
     */
    ContractGuarantyJsonVo queryDetailById(String id);


    /**
     * 编辑保证合同信息
     * @param contractGuarantyDto
     * @param detailList
     * @param attachmentList
     * @param submitType
     * @param vo
     * @return
     */
    RspVo edit(String bodyStr,ContractGuarantyDto contractGuarantyDto, List<ContractGuarantyDetail> detailList,
               List<ProjectAttachment> attachmentList, Integer submitType, AuthorizationVO vo);
}
